/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Codigo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author kyerte
 */
public class ConsultaMediosPublicitarios {

    private Connection conexion = null;
    private PreparedStatement consultarMediosPublicitarios = null;
    private PreparedStatement insertarMediosPublicitarios = null;
    private PreparedStatement actualizarMediosPublicitarios = null;
    private PreparedStatement eliminarMediosPublicitarios = null;
    private PreparedStatement obtenerIdMediosPublicitarios = null;
    private PreparedStatement obtenerNombreMediosPublicitarios = null;

    ConsultaMediosPublicitarios() {
        conexion = FrmPrincipal.conexion;

        try {

            consultarMediosPublicitarios = conexion.prepareStatement("SELECT * FROM "
                    + "MediosPublicitarios");
            insertarMediosPublicitarios = conexion.prepareStatement("INSERT INTO"
                    + " MediosPublicitarios(Nombre, Tipo) VALUES(?,?)");
            actualizarMediosPublicitarios = conexion.prepareStatement("UPDATE "
                    + "MediosPublicitarios SET Nombre=?, Tipo=? WHERE idMediosPubl=?");
            eliminarMediosPublicitarios = conexion.prepareStatement("DELETE FROM "
                    + "MediosPublicitarios WHERE idMediosPubl=?");
            obtenerIdMediosPublicitarios = conexion.prepareStatement("SELECT "
                    + "idMediosPubl FROM MediosPublicitarios WHERE Nombre=?");
            obtenerNombreMediosPublicitarios = conexion.prepareStatement("SELECT Nombre "
                    + "FROM MediosPublicitarios WHERE idMediosPubl=?");

        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
    }

    public List<MedioPublicitario> consultarMediosPublicitarios() {

        ResultSet conjuntoResultados = null;
        List<MedioPublicitario> resultadosMedios = null;

        try {

            conjuntoResultados = consultarMediosPublicitarios.executeQuery();
            resultadosMedios = new ArrayList<MedioPublicitario>();

            while (conjuntoResultados.next()) {

                resultadosMedios.add(new MedioPublicitario(
                        conjuntoResultados.getInt("idMediosPubl"),
                        conjuntoResultados.getString("Nombre"),
                        conjuntoResultados.getString("Tipo")));

            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            try {
                conjuntoResultados.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
                close();
            }
        }
        return resultadosMedios;
    }

    public int agregarNuevoMedioPublicitario(String nom, String kind) {
        int resultado = 0;
        try {
            insertarMediosPublicitarios.setString(1, nom);
            insertarMediosPublicitarios.setString(2, kind);

            resultado = insertarMediosPublicitarios.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
        return resultado;
    }

    public int actualizarMediosPublicitarios(String nom, String kind, int id) {
        int resultado = 0;

        try {

            actualizarMediosPublicitarios.setString(1, nom);
            actualizarMediosPublicitarios.setString(2, kind);
            actualizarMediosPublicitarios.setInt(3, id);

            resultado = actualizarMediosPublicitarios.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
        return resultado;
    }

    public int eliminarMediosPublicitarios(int id) {
        int resultado = 0;
        try {
            eliminarMediosPublicitarios.setInt(1, id);
            resultado = eliminarMediosPublicitarios.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }

        return resultado;
    }

    public int obtenerIdMediosPublicitarios(String nombre) {

        ResultSet conjuntoResultados = null;
        int id = 0;

        try {

            obtenerIdMediosPublicitarios.setString(1, nombre);

            conjuntoResultados = obtenerIdMediosPublicitarios.executeQuery();

            while (conjuntoResultados.next()) {
                id = conjuntoResultados.getInt("idMediosPubl");
            }

        } catch (SQLException ex) {
            ex.printStackTrace();

        } finally {
            try {
                conjuntoResultados.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
                close();
            }
        }
        return id;
    }

    public String obtenerNombreMediosPublicitarios(int idMedio) {
        String nombre = "";
        ResultSet conjuntoResultados = null;
        try {
            obtenerNombreMediosPublicitarios.setInt(1, idMedio);
            conjuntoResultados = obtenerNombreMediosPublicitarios.executeQuery();
            while (conjuntoResultados.next()) {
                nombre = conjuntoResultados.getString("Nombre");
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            try {
                conjuntoResultados.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
                close();
            }
        }

        return nombre;
    }

    private void close() {
        try {
            conexion.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
}
